import Vue from 'vue'

// 自定义常用函数
export const customCommonObj = {
	// 获取当前时间
	// 用法
	// customCommonObj.getCurTime({
	// 	'year' : 1,
	// 	'month' : -1,
	// 	'day' : -1,
	// 	'hour' : 5,
	// 	'min' : 6,
	// })
	getCurTime: (data) => {
		
		var nowDate = new Date();
		
		if(data != undefined){
			if(data.year != undefined){
				nowDate.setFullYear(nowDate.getFullYear() + data.year)
			}
			
			if(data.month != undefined){
				nowDate.setMonth(nowDate.getMonth() + data.month)
			}
			
			if(data.day != undefined){
				nowDate.setDate(nowDate.getDate() + data.day)
			}
			
			if(data.hour != undefined){
				nowDate.setHours(nowDate.getHours() + data.hour)
			}
			
			if(data.min != undefined){
				nowDate.setMinutes(nowDate.getMinutes() + data.min)
			}
		}
		
		var y = nowDate.getFullYear();
		var m = (nowDate.getMonth() + 1) < 10 ? ("0" + (nowDate.getMonth() + 1)) : (nowDate.getMonth() + 1);
		var d = nowDate.getDate() < 10 ? ("0" + nowDate.getDate()) : nowDate.getDate();
		var h = nowDate.getHours() < 10 ? ('0' + nowDate.getHours()) : nowDate.getHours()
		var n = nowDate.getMinutes() < 10 ? ('0' + nowDate.getMinutes()) : nowDate.getMinutes()
		//var s = nowDate.getSeconds() < 10 ? ('0' + nowDate.getseconds()) : nowDate.getSeconds()
		//var formatdate = y + '-' + m + '-' + d + " " + h + ":" + n + ":" + s;
		
		var formatdate = {
			dateEnTxt: y + '-' + m + '-' + d + " " + h + ":" + n + ':00',
			dateCnTxt: y + '年 ' + m + '月 ' + d + "日 " + h + '时 ' + n + '分'
		}
		
		return formatdate;
	},
	
	// 返回设备的指定宽高参数，rpx
	getWindowWidthHeightPx: () => {
		var res = {
			height_rpx: '',
			width_rpx: ''
		}
		var systemInfo = uni.getSystemInfoSync();
		// px转为rpx
		res.height_rpx = systemInfo.windowHeight * (750 / systemInfo.windowWidth);
		res.width_rpx = systemInfo.windowWidth * (750 / systemInfo.windowWidth);
		
		return res;
	}
}

// 常用正则判断
// 使用方法 供新手参考 :
// 在vue文件中 import { regExpObj } from '@/js_sdk/common.js'
// let valueReg = regExpObj.regExpZh(value)
export const regExpObj = {
	// 格式对象，便于单独调用正则表达式
	customRegExp : {
		dateTime : /^[1-9]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])\s+(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d$/,
	},
	//日期格式  2019-01-12
	regExpDate: (str) => {
		return RegExp(/^\d{4}-\d{1,2}-\d{1,2}/).test(str)
	},
	//日期时间格式  2019-01-12 12:00
	regExpDateTime: (str) => {
		return RegExp(this.customRegExp.dateTime).test(str)
	},
	//匹配有没有中文
	regExpZh: (str) => {
		return RegExp(/[\u4e00-\u9fa5]+/).test(str)
	},
	//只允许中文
	onlyregExpZh: (str) => {
		return RegExp(/^[\u4e00-\u9fa5]+$/).test(str)
	},
	//只允许中文，英文字母，数字
	regExpZhEnNum: (str) => {
		return RegExp(/^[\u4e00-\u9fa5A-Za-z0-9]+$/).test(str)
	},
	//匹配身份证
	regExpIDCard: (str) => {
		return RegExp(/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/).test(str);
	},
	//匹配手机号
	regExpPhone: (str) => {
		return RegExp(/^1[3456789]\d{9}$/).test(str);
	},
	//匹配邮箱格式
	regExpEmail: (str) => {
		return RegExp(/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/).test(str);
	},
	//匹配域名
	regExpRealmName: (str) => {
		return RegExp(/[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\/.?/).test(str)
	},
	//匹配InternetURL
	regExpInternetURL: (str) => {
		return RegExp(/http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?/).test(str)
	},
	//匹配密码（密码(以字母开头，长度在6~18之间，只能包含字母、数字和下划线)）
	regExpPwd: (str) => {
		return RegExp(/^[a-zA-Z]\w{5,17}$/).test(str)
	},
	//匹配空白行
	regExpWhiteLine: (str) => {
		return RegExp(/\n\s*\r/).test(str)
	},
	//匹配正数、负数、和小数
	regExpNumberFloat: (str) => {
		return RegExp(/^(\-|\+)?\d+(\.\d+)?$/).test(str)
	},
	//匹配零和非零开头的数字
	regExpZeroNumber: (str) => {
		return RegExp(/^(0|[1-9][0-9]*)$/).test(str)
	},
	//匹配数字
	regExpNumber: (str) => {
		return RegExp(/^[0-9]*$/).test(str)
	},
	//长度为8-20的所有字符
	regExpAllByte: (str) => {
		return RegExp(/^.{8,20}$/).test(str)
	}
}

export default function(Vue) {
	//添加全局API
	Vue.prototype.$customCommon = {
		customCommonObj,
		regExpObj
	}
}